package com.xmg.p2p.business.service;

import com.xmg.p2p.base.domain.Account;
import com.xmg.p2p.business.domain.Bid;
import com.xmg.p2p.business.domain.BidRequest;
import com.xmg.p2p.business.domain.MoneyWithdraw;
import com.xmg.p2p.business.domain.RechargeOffline;

import java.math.BigDecimal;

/**
 * lcd  2020/5/27
 * Description:
 */
public interface IAccountFlowService {
    void offLineCharge(RechargeOffline r, Account applier);

    void bid(Account currentAccount, Bid bid);

    void returnMoney(Account account, Bid bid);

    void borrowSuccess(Account borrowAccount, BidRequest bidRequest);

    void chargeBorrowFee(BigDecimal managementChargeFee, BidRequest bidRequest, Account borrowAccount);

    void bidSuccess(Bid bid, Account bidAccount);

    void moneyWithDrawApply(MoneyWithdraw m, Account account);

    void withdrawFail(Account account, MoneyWithdraw moneyWithdraw);

    void withdrawSuccessReal(Account account, BigDecimal subtract);

    void withdrawSuccessFee(Account account, BigDecimal charge);
}
